﻿/**
 * IMonAIR: A new open-source library for instant messenger connectivity. <http://code.google.com/p/imonair/>
 *
 * This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
 */
/**
 * @author Andre de Groot <http://www.cmd.tech.nhl.nl/users/groot406/weblog/>
 * @author Piotr Zema <http://felixz.mark-naegeli.com>
 */
package net.imonair.core.contacts {
	import flash.events.IEventDispatcher;
	import net.imonair.core.connectors.IIMConnector;
	import net.imonair.core.chats.IIMMessage;
	/**
	 * The base interface for IMonAIR contacts.
	 * @playerversion Flash 9
	 * @langversion 3.0
	 * @keyword contact, interface
	 * @see net.imonair.core.connectors.IIMConnector
	 * @see net.imonair.core.contacts.IMContactList
	 * @see net.imonair.core.events.IMContactEvent
	 * @see net.imonair.core.chats.IIMMessage
	 */ 
	public interface IIMContact extends IEventDispatcher {
		/**
		 * Provides related connector.
		 */
		function get connector():IIMConnector;
        /**
         * Determines the display name of the contact.
         */
		function get displayName():String;
		function set displayName(value:String):void;
        /**
         * Determines the id of the contact.
         */
		function get id():String;
		function set id(value:String):void;
        /**
         * Determines the status of the contact.
         */
		function get status():String;
		function set status(value:String):void;
		/**
		 * Provides simplified and unified over all networks status.
		 */
		function get simpleStatus():String;
		/**
		 * Sends a message to current contact.
		 * @param message A IIMMessage instance to be sent.
		 */
		function sendMessage(message:IIMMessage):void;
	}
}